package s2elinshu;

public class J14OverLoading {
	// 메서드 다중정의 overloading
	// 메서드 이름은 동일
	// 메서드의 인수 목록 중 인수의 자료형이 다름
	// 메서드의 인수 목록 중 인수의 갯수가 다름
	// 단, 메서드의 반환형은 다중정의와 관련이 없음

	// 계산기 프로그램의 사칠연산을 메서드로 정의
	// plus, minus, multiply, divide
	// 메서드 다중정의를 도입하지 않을경우
	// 메서드의 기능이 같음에도 불구하고
	// 메서드의 이름은 각각 다르게 정의해야 함
	// ->>>>>메서드 이름을 외우기 불편함

	/*
	 * public int plus(int x, int y){return (x+y);} public float plusFloat(float
	 * x, float y){return(x+y);} public double plusDouble(double x, double
	 * y){return(x+y);}
	 */

	// 메서드 다중정의 도입
	// (xxx yyy,xxx yyy)안에 xxx값이 float와 double로 다르기에 다른 것으로 인식
	public double plus(double x, double y) {
		return (x + y);
	}

	public float plus(float x, float y) {
		return (x + y);
	}

	// (xxx yyy,xxx yyy) (xxx yyy,xxx yyy, xxx yyy) 인수의 갯수가 다름
	public float plus(int x, int y, int z) {
		return (x + y + z);
	}

	// 메서드의 반환형이 다름 - 다중정의 불가
	/*
	 * public String plus(int x, int y, int z){ return null;}
	 */

} // J14OverLoading class 닫음
